wayland: Create and expose an xkb_state on the keymap object
authorJosé Dapena Paz <jdapena@igalia.com>
Mon, 16 Jul 2012 18:16:48 +0000 (19:16 +0100)
committerRob Bradford <rob@linux.intel.com>
Mon, 16 Jul 2012 19:11:41 +0000 (20:11 +0100)
This is then logically associated with the input device since each (keyboard)
input device has its own keymap.

Signed-off-by: Rob Bradford <rob@linux.intel.com>
gdk/wayland/gdkkeys-wayland.c
gdk/wayland/gdkprivate-wayland.h

index 08b0b82c2e41b2936d0d8cc91efb8c85426773a8..5de64083df88fcfd9427e3ccd714b234b9542edc 100644 (file)
@@ -49,6 +49,7 @@ struct _GdkWaylandKeymap
   GdkKeymap parent_instance;
 
   struct xkb_keymap *xkb_keymap;
+  struct xkb_state *xkb_state;
 };
 
 struct _GdkWaylandKeymapClass
@@ -656,6 +657,7 @@ _gdk_wayland_keymap_new ()
   names.variant = "";
   names.options = "";
   keymap->xkb_keymap = xkb_map_new_from_names(context, &names, XKB_MAP_COMPILE_PLACEHOLDER);
+  keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
   xkb_context_unref (context);
 
   return GDK_KEYMAP (keymap);
@@ -682,6 +684,7 @@ _gdk_wayland_keymap_new_from_fd (uint32_t format,
   keymap->xkb_keymap = xkb_map_new_from_string (context, map_str, format, XKB_MAP_COMPILE_PLACEHOLDER);
   munmap (map_str, size);
   close (fd);
+  keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
   xkb_context_unref (context);
 
   return GDK_KEYMAP (keymap);
@@ -692,7 +695,7 @@ struct xkb_keymap *_gdk_wayland_keymap_get_xkb_keymap (GdkKeymap *keymap)
   return GDK_WAYLAND_KEYMAP (keymap)->xkb_keymap;
 }
 
-struct xkb_desc *_gdk_wayland_keymap_get_xkb_desc (GdkKeymap *keymap)
+struct xkb_state *_gdk_wayland_keymap_get_xkb_state (GdkKeymap *keymap)
 {
-  return GDK_WAYLAND_KEYMAP (keymap)->xkb;
+  return GDK_WAYLAND_KEYMAP (keymap)->xkb_state;
 }
index cfa9bd885ec065977076c2c4a5fa4c405592c366..5354d756bf4e93421a9d2115984093aa98f4a798 100644 (file)
@@ -52,6 +52,7 @@ GdkKeymap *_gdk_wayland_keymap_new (void);
 GdkKeymap *_gdk_wayland_keymap_new_from_fd (uint32_t format,
                                             uint32_t fd, uint32_t size);
 struct xkb_desc *_gdk_wayland_keymap_get_xkb_desc (GdkKeymap *keymap);
+struct xkb_state *_gdk_wayland_keymap_get_xkb_state (GdkKeymap *keymap);
 
 GdkCursor *_gdk_wayland_display_get_cursor_for_type (GdkDisplay    *display,
                                                     GdkCursorType  cursor_type);